/**
 * @description axios请求的封装
 */
// const BASE_URL = "http://fitness.h5.itsource.cn:3701"; // 接口请求的 URL
// const BASE_URL = "http://172.168.100.120:3701";
const BASE_URL = "http://172.168.100.184:3701"; // 接口请求的 URL
const axios = require("axios");
const local = require("./local");
/**
 * 请求拦截器
 * 作用: 在每一次发送讲求的时候进行统一操作  如让后期每一个请求都带上token 令牌
 */
//验证Authorization 访问所有api接口 必须有token值 有token值表示通过验证 才可以继续访问接口
axios.interceptors.request.use(
	(config) => {
		// 获取本地存储中的token值
		const token = local.get("t_k");
		if (token) {
			// 注意：token前边有 'Bearer ' 的信息前缀,API接口需求，Bearer后边有空格
			config.headers.Authorization = "Bearer " + token;
		}
		return config;
	},
	(error) => {
		return Promise.reject(error);
	}
);

/* post请求 */
function post(url, data, callback) {
	axios
		.post(BASE_URL + url, data)
		.then((res) => {
			callback(res.data);
		})
		.catch((err) => {
			callback(err);
		});
}

/*get请求*/
function get(url, callback) {
	axios
		.get(BASE_URL + url)
		.then((res) => {
			callback(res.data);
		})
		.catch((err) => {
			callback(err);
		});
}

/* 封装单文件上传的函数 */
/**
 *
 * @param {String} url 发送请求的地址
 * @param {String} key 用户上传的图片源文件
 * @param {Object} value 后端接口参数名
 * @param {Function} callback 回调函数
 */
function upLoadFile(url, key, value, callback) {
	let formData = new FormData();
	formData.append(key, value);
	// console.log(formData.get("file")); 检查是否获取到
	// 发送ajax
	post(url, formData, function (res) {
		callback(res);
	});
}

/* 导出 */
module.exports = {
	get,
	post,
	BASE_URL,
	upLoadFile,
};
